using System;
using System.Collections.Generic;

namespace SqlInjectionScanner.Config
{
    /// <summary>
    /// 数据库配置类
    /// </summary>
    public class DatabaseConfig
    {
        /// <summary>
        /// 数据库类型字符串(SqlServer/MySql/PostgreSql/SQLite/Oracle)
        /// </summary>
        public string DatabaseType { get; set; } = "SqlServer";

        /// <summary>
        /// 连接字符串
        /// </summary>
        public string ConnectionString { get; set; } = string.Empty;

        /// <summary>
        /// 要扫描的数据库名称（可选，为空则扫描所有可访问的数据库）
        /// </summary>
        public string? DatabaseName { get; set; }

        /// <summary>
        /// 要扫描的表名列表（可选，为空则扫描所有表）
        /// </summary>
        public List<string>? TableNames { get; set; }

        /// <summary>
        /// 要排除的表名列表
        /// </summary>
        public List<string>? ExcludedTables { get; set; }

        /// <summary>
        /// 最大扫描记录数（每个表）
        /// </summary>
        public int MaxRecordsPerTable { get; set; } = 10000;

        /// <summary>
        /// 批处理大小
        /// </summary>
        public int BatchSize { get; set; } = 1000;

        /// <summary>
        /// 扫描超时时间（秒）
        /// </summary>
        public int TimeoutSeconds { get; set; } = 300;
    }
}